package enumdemo;

public enum TestEnum {
    //枚举对象
    RED("红色",0), BLACK("黑色",1), GREEN("绿色",2), WHITE("白色",3);
    public String color;
    public int ordinal;
    //枚举的构造方法默认是私有的
    /*TestEnum() {
    }*/

    TestEnum(String color, int ordinal) {
        this.color = color;
        this.ordinal = ordinal;
    }

    public static void main(String[] args) {
        TestEnum test=TestEnum.valueOf("GREEN");//将普通字符串转化成枚举的实例，不是枚举类型的字符串不行
        System.out.println(test);
        System.out.println(RED.compareTo(GREEN));//比较序号

    }

    public static void main2(String[] args) {
        //values方法在父类Enum当中是没有的，为什么可以被调用
        //是由编译器添加的
        TestEnum[]testEnums= TestEnum.values();
        for (int i = 0; i < testEnums.length; i++) {
            System.out.println(testEnums[i]+" -> "+testEnums[i].ordinal());//ordinal枚举对象序号默认从0开始

        }

    }

    public static void main1(String[] args) {
        TestEnum testEnum2 = TestEnum.BLACK;
        switch (testEnum2) {
            case RED:
                System.out.println("red");
                break;
            case BLACK:
                System.out.println("black");
                break;
            case WHITE:
                System.out.println("WHITE");
                break;
            case GREEN:
                System.out.println("black");
                break;
            default:
                break;
        }
    }
}
